package cn.edu.sgu.www.mhxysy.service.chongwu;

import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuSkillCategoryDTO;
import cn.edu.sgu.www.mhxysy.entity.chongwu.ChongwuSkillCategory;
import cn.edu.sgu.www.mhxysy.pager.chongwu.ChongwuSkillCategoryPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface ChongwuSkillCategoryService {

	/**
	 * 上传图片
	 * @param file MultipartFile
	 * @return String
	 * @throws IOException uploadUtils.upload()方法抛出的异常
	 */
	String upload(MultipartFile file) throws IOException;

	/**
	 * 添加宠物技能类型
	 * @param chongwuSkillCategoryDTO 宠物技能类型
	 */
	void insert(ChongwuSkillCategoryDTO chongwuSkillCategoryDTO);

	/**
	 * 通过ID修改宠物技能类型
	 * @param chongwuSkillCategoryDTO 宠物技能类型信息
	 */
	void updateById(ChongwuSkillCategoryDTO chongwuSkillCategoryDTO);

	/**
	 * 通过ID修改宠物技能图片
	 * @param id 宠物技能类型ID
	 * @param image 图片地址
	 */
	void updateImageById(Integer id, String image);

	/**
	 * 查询全部宠物技能类型
	 * @return List<ChongwuSkillCategory>
	 */
	List<ChongwuSkillCategory> selectAll();

	/**
	 * 通过ID查询宠物技能类型
	 * @param id 宠物技能类型ID
	 * @return ChongwuSkillCategory
	 */
	ChongwuSkillCategory selectById(Integer id);

	/**
	 * 通过技能名称查询宠物技能类型列表
	 * @param name 技能名称
	 * @return List<ChongwuSkillCategory>
	 */
    List<ChongwuSkillCategory> selectByName(String name);

	/**
	 * 查询可替换认证的技能
	 * @param chongwuId 宠物ID
	 * @return List<ChongwuSkillCategory>
	 */
	List<ChongwuSkillCategory> getCanReplaceAuthSkills(String chongwuId);

	/**
	 * 分页查询宠物技能类型列表
	 * @param pager 分页参数
	 * @return Page<ChongwuSkillCategory>
	 */
	Page<ChongwuSkillCategory> selectByPage(ChongwuSkillCategoryPager pager);
}